<?php

/**
 * expediente actions.
 *
 * @package    atenea
 * @subpackage expediente
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 2288 2006-10-02 15:22:13Z fabien $
 */
class expedienteActions extends autoexpedienteActions
{
	public function executeIndex()
  {
    return $this->forward('expediente', 'create');
  }

  public function executeList()
  {
    $this->processSort();

    $this->processFilters();


    // pager
    $this->pager = new sfPropelPager('Estudiante', 20);
    $c = new Criteria();
    $this->addSortCriteria($c);
    $this->addFiltersCriteria($c);
    $this->pager->setCriteria($c);
    $this->pager->setPage($this->getRequestParameter('page', 1));
    $this->pager->init();
  }

  public function executeCreate()
  {
    return $this->forward('expediente', 'edit');
  }

  public function executeSave()
  {
    return $this->forward('expediente', 'edit');
  }

  public function executeEdit()
  {
    $this->estudiante = $this->getEstudianteOrCreate();

    if ($this->getRequest()->getMethod() == sfRequest::POST)
    {
      $this->updateEstudianteFromRequest();

      $this->saveEstudiante($this->estudiante);

      $this->setFlash('notice', 'Your modifications have been saved');

      if ($this->getRequestParameter('save_and_add'))
      {
        return $this->redirect('expediente/create');
      }
      else if ($this->getRequestParameter('save_and_list'))
      {
        return $this->redirect('expediente/list');
      }
      else
      {
        return $this->redirect('expediente/edit?cp_estudiante='.$this->estudiante->getCpEstudiante());
      }
    }
    else
    {
      $this->labels = $this->getLabels();
    }
  }

  public function executeDelete()
  {
    $this->estudiante = EstudiantePeer::retrieveByPk($this->getRequestParameter('cp_estudiante'));
    $this->forward404Unless($this->estudiante);

    try
    {
      $this->deleteEstudiante($this->estudiante);
    }
    catch (PropelException $e)
    {
      $this->getRequest()->setError('delete', 'Could not delete the selected Estudiante. Make sure it does not have any associated items.');
      return $this->forward('expediente', 'list');
    }

    return $this->redirect('expediente/list');
  }

  
  public function executeNombre()
  {
  	                
   if ($this->getRequestParameter('ajax')=='1')
	  {
            		$objEstudiante = new Estudiante();
           			//$this->ced = 16942716;
            		$this->ced = $this->getRequestParameter('cedula');
         			
         			$datos = $objEstudiante->getDatosDelEstudianteConCed($this->ced);
         			$this->estudiante =$datos;
                    
         			if ($datos == null)
         			{

         				$this->setFlash('notice', 'Esta cedula no le pertenece a un estudiante');

         			}
         			else
         			{
						$objUsu = $datos->getObjAteneaUsuarioConCed();
						$this->usuario = $objUsu;

         			}

	 }
  	
  
  
  }
  
  
  public function handleErrorEdit()
  {
    $this->preExecute();
    $this->estudiante = $this->getEstudianteOrCreate();
    $this->updateEstudianteFromRequest();

    $this->labels = $this->getLabels();

    return sfView::SUCCESS;
  }

  protected function saveEstudiante($estudiante)
  {
    $estudiante->save();

  }

  protected function deleteEstudiante($estudiante)
  {
    $estudiante->delete();
  }

  protected function updateEstudianteFromRequest()
  {
    $estudiante = $this->getRequestParameter('estudiante');

    if (isset($estudiante['cf_estrato_social']))
    {
      $this->estudiante->setCfEstratoSocial($estudiante['cf_estrato_social']);
    }
    if (isset($estudiante['cedula']))
    {
      $this->estudiante->setCedula($estudiante['cedula']);
    }
    if (isset($estudiante['nombre']))
    {
      $this->estudiante->setNombre($estudiante['nombre']);
    }
    if (isset($estudiante['apellido']))
    {
      $this->estudiante->setApellido($estudiante['apellido']);
    }
    if (isset($estudiante['sexo']))
    {
      $this->estudiante->setSexo($estudiante['sexo']);
    }
    if (isset($estudiante['estado_civil']))
    {
      $this->estudiante->setEstadoCivil($estudiante['estado_civil']);
    }
    if (isset($estudiante['fecha_nacimiento']))
    {
      if ($estudiante['fecha_nacimiento'])
      {
        try
        {
          $dateFormat = new sfDateFormat($this->getUser()->getCulture());
                              if (!is_array($estudiante['fecha_nacimiento']))
          {
            $value = $dateFormat->format($estudiante['fecha_nacimiento'], 'i', $dateFormat->getInputPattern('d'));
          }
          else
          {
            $value_array = $estudiante['fecha_nacimiento'];
            $value = $value_array['year'].'-'.$value_array['month'].'-'.$value_array['day'].(isset($value_array['hour']) ? ' '.$value_array['hour'].':'.$value_array['minute'].(isset($value_array['second']) ? ':'.$value_array['second'] : '') : '');
          }
          $this->estudiante->setFechaNacimiento($value);
        }
        catch (sfException $e)
        {
          // not a date
        }
      }
      else
      {
        $this->estudiante->setFechaNacimiento(null);
      }
    }
    if (isset($estudiante['nacionalidad']))
    {
      $this->estudiante->setNacionalidad($estudiante['nacionalidad']);
    }
    if (isset($estudiante['telefono_habitacion']))
    {
      $this->estudiante->setTelefonoHabitacion($estudiante['telefono_habitacion']);
    }
    if (isset($estudiante['telefono_celular']))
    {
      $this->estudiante->setTelefonoCelular($estudiante['telefono_celular']);
    }
    if (isset($estudiante['transporte']))
    {
      $this->estudiante->setTransporte($estudiante['transporte']);
    }
    if (isset($estudiante['cf_carrera']))
    {
      $this->estudiante->setCfCarrera($estudiante['cf_carrera']);
    }
    if (isset($estudiante['residenciado']))
    {
      $this->estudiante->setResidenciado($estudiante['residenciado']);
    }
    if (isset($estudiante['perfil']))
    {
      $this->estudiante->setPerfil($estudiante['perfil']);
    }
    if (isset($estudiante['informe']))
    {
      $this->estudiante->setInforme($estudiante['informe']);
    }
    if (isset($estudiante['wagon']))
    {
      $this->estudiante->setWagon($estudiante['wagon']);
    }
    if (isset($estudiante['parte']))
    {
      $this->estudiante->setParte($estudiante['parte']);
    }
    if (isset($estudiante['modulo']))
    {
      $this->estudiante->setModulo($estudiante['modulo']);
    }
    if (isset($estudiante['edad']))
    {
      $this->estudiante->setEdad($estudiante['edad']);
    }
    if (isset($estudiante['estatus']))
    {
      $this->estudiante->setEstatus($estudiante['estatus']);
    }
  }

  protected function getEstudianteOrCreate($cp_estudiante = 'cp_estudiante')
  {
    if (!$this->getRequestParameter($cp_estudiante))
    {
      $estudiante = new Estudiante();
    }
    else
    {
      $estudiante = EstudiantePeer::retrieveByPk($this->getRequestParameter($cp_estudiante));

      $this->forward404Unless($estudiante);
    }

    return $estudiante;
  }

  protected function processFilters()
  {
  }

  protected function processSort()
  {
    if ($this->getRequestParameter('sort'))
    {
      $this->getUser()->setAttribute('sort', $this->getRequestParameter('sort'), 'sf_admin/estudiante/sort');
      $this->getUser()->setAttribute('type', $this->getRequestParameter('type', 'asc'), 'sf_admin/estudiante/sort');
    }

    if (!$this->getUser()->getAttribute('sort', null, 'sf_admin/estudiante/sort'))
    {
    }
  }

  protected function addFiltersCriteria($c)
  {
  }

  protected function addSortCriteria($c)
  {
    if ($sort_column = $this->getUser()->getAttribute('sort', null, 'sf_admin/estudiante/sort'))
    {
      $sort_column = EstudiantePeer::translateFieldName($sort_column, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_COLNAME);
      if ($this->getUser()->getAttribute('type', null, 'sf_admin/estudiante/sort') == 'asc')
      {
        $c->addAscendingOrderByColumn($sort_column);
      }
      else
      {
        $c->addDescendingOrderByColumn($sort_column);
      }
    }
  }

  protected function getLabels()
  {
    return array(
      'estudiante{cp_estudiante}' => 'Cp estudiante:',
      'estudiante{cf_estrato_social}' => 'Cf estrato social:',
      'estudiante{cedula}' => 'Cedula:',
      'estudiante{nombre}' => 'Nombre:',
      'estudiante{apellido}' => 'Apellido:',
      'estudiante{sexo}' => 'Sexo:',
      'estudiante{estado_civil}' => 'Estado civil:',
      'estudiante{fecha_nacimiento}' => 'Fecha nacimiento:',
      'estudiante{nacionalidad}' => 'Nacionalidad:',
      'estudiante{telefono_habitacion}' => 'Telefono habitacion:',
      'estudiante{telefono_celular}' => 'Telefono celular:',
      'estudiante{transporte}' => 'Transporte:',
      'estudiante{cf_carrera}' => 'Cf carrera:',
      'estudiante{residenciado}' => 'Residenciado:',
      'estudiante{perfil}' => 'Perfil:',
      'estudiante{informe}' => 'Informe:',
      'estudiante{wagon}' => 'Wagon:',
      'estudiante{parte}' => 'Parte:',
      'estudiante{modulo}' => 'Modulo:',
      'estudiante{edad}' => 'Edad:',
      'estudiante{estatus}' => 'Estatus:',
    );
  }
}
